// 1.0 引入 axios
import axios from 'axios'
import qs from 'qs'
import local from '@/utils/local.js'

// 2.0 设置其他信息
axios.defaults.baseURL = 'http://127.0.0.1:5000'
// 请求的基本路径，请求超时的时间，拦截器，请求头...

// 2.1 请求拦截器
axios.interceptors.request.use(config => {
  // config 就是所有的配置项，里面包含了请求头
  const token = local.get('token')
  if (token) {
    config.headers.Authorization = token
  }
  return config
})

// 3.0 封装请求的代码
export default {
  get(url, params) {
    return new Promise((resolve, reject) => {
      // 如果有一些公共的功能，提前封装直接给出最简单的结果
      axios
        .get(url, { params })
        .then(res => {
          resolve(res.data)
        })
        .catch(err => {
          reject(err)
        })
    })
  },
  post(url, body) {
    return new Promise((resolve, reject) => {
      // 如果有一些公共的功能，提前封装直接给出最简单的结果
      axios
        .post(url, qs.stringify(body))
        .then(res => {
          resolve(res.data)
        })
        .catch(err => {
          reject(err)
        })
    })
  }
}
